﻿using System;

namespace Heaven.Graphics
{
    /// <summary>
    /// Тип данных представляющий собой вершину
    /// </summary>
    public enum DeclarationType 
    {
		/// <summary>
		/// 1-D double представляющий собой (float, 0, 0, 1)
		/// </summary>
		Float1 = 0,
		/// <summary>
        /// 2-D double представляющий собой (float, float, 0, 1)
        /// </summary>
		Float2,
		/// <summary>
        /// 3-D double представляющий собой (float, float, float, 1)
        /// </summary>
		Float3,
        /// <summary>
        /// 4-D double представляющий собой (float, float, float, float)
        /// </summary>
        Float4,
		/// <summary>
		/// 4-D упакованные unsigned byte'ы отображаемые в диапазон от 0 до 1. 
        /// D3DCOLOR формат (ARGB) представляющий собой (R, G, B, A)
        /// </summary>
		Color,
		/// <summary>
		/// 4-D unsigned byte
		/// </summary>
		UByte4,
		/// <summary>
        /// 2-D signed short представляющий собой (value, value, 0, 1)
        /// </summary>
        Short2,
		/// <summary>
        /// 4-D signed short представляющий собой (value, value, value, value)
        /// </summary>
        Short4,
		/// <summary>
		/// Каждый из 4 байт делится на 255.0f. Этот тип допустим для вершинных шейдеров версии 2.0f или выше
		/// </summary>
		UByte4N,
		/// <summary>
        /// 2-D signed short, представляющий собой (Первый байт/32767.0f, Второй байт/32767.0f, 0, 1). 
        /// Этот тип допустим для вершинных шейдеров версии 2.0f или выше
        /// </summary>
        Short2N,
		/// <summary>
        /// 4-D signed short, представляющий собой (Первый байт/32767.0f, Второй байт/32767.0f, Третий байт/32767.0f, Четвертый байт/32767.0f). 
        /// Этот тип допустим для вершинных шейдеров версии 2.0f или выше
        /// </summary>
        Short4N,
		/// <summary>
        /// 2-D unsigned short, представляющий собой (Первое слово/65535.0f, Второе слово/65535.0f, 0, 1). 
        /// Этот тип допустим для вершинных шейдеров версии 2.0f или выше
        /// </summary>
        UShort2N,
		/// <summary>
        /// 4-D unsigned short, представляющий собой (Первое слово/65535.0f, Второе слово/65535.0f, Третье слово/65535.0f, Четвертое слово/65535.0f) 
        /// Этот тип допустим для вершинных шейдеров версии 2.0f или выше
        /// </summary>
		UShort4N,
		/// <summary> 
		/// 3-D unsigned, по десять бит на одно значение (value, value, value, 1). 
        /// Этот тип допустим для вершинных шейдеров версии 2.0f или выше
        /// </summary>
		UDec3,
		/// <summary>
        /// 3-D signed, по десять бит на одно значение, представляющий собой (v[0]/511.0f, v[1]/511.0f, v[2]/511.0f, 1).
        /// Этот тип допустим для вершинных шейдеров версии 2.0f или выше
        /// </summary>
        Dec3N,
		/// <summary>
        /// Два 16-bit вещественных значения представляющих собой (value, value, 0, 1)
        /// </summary>
		Float16Two,
		/// <summary>
        /// Четыре 16-bit вещественных значения представляющих собой (value, value, value, value)
        /// </summary>
        Float16Four,
		/// <summary>
		/// Тип в объявлении не используется.
		/// Это предназначено для использования с D3DDECLMETHOD_UV и D3DDECLMETHOD_LOOKUPPRESAMPLED
		/// </summary>
		Unused,
        /// <summary>
        /// Этот тип только для программного режима
        /// </summary>
        Software
	}
}
